package com.ruoyi.cat.domain;

import java.math.BigDecimal;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 商品信息对象 cat_product
 * 
 * @author xin
 * @date 2025-09-16
 */
public class CatProduct extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 商品ID */
    private Long productId;

    /** 商品名称 */
    @Excel(name = "商品名称")
    private String productName;

    /** 商品价格 */
    @Excel(name = "商品价格")
    private BigDecimal productPrice;

    /** 促销价格 */
    @Excel(name = "促销价格")
    private BigDecimal promotionalPrice;

    /** 商品详情 */
    @Excel(name = "商品详情")
    private String productDetail;

    /** 商品图片 */
    @Excel(name = "商品图片")
    private String imgUrl;

    /** 商品库存 */
    @Excel(name = "商品库存")
    private Long stock;

    /** 分类名称 */
    @Excel(name = "分类名称")
    private String typeName;

    /** 分类级别 */
    @Excel(name = "分类级别")
    private Long typeLevel;

    /** 热门程度 */
    @Excel(name = "热门程度")
    private Long popularity;

    /** SKU名称 */
    @Excel(name = "SKU名称")
    private String skuName;

    /** SKU库存 */
    @Excel(name = "SKU库存")
    private Long skuStock;

    /** SKU价格 */
    @Excel(name = "SKU价格")
    private BigDecimal skuPrice;

    /** 状态（0正常 1停用） */
    @Excel(name = "状态", readConverterExp = "0=正常,1=停用")
    private String status;

    public void setProductId(Long productId) 
    {
        this.productId = productId;
    }

    public Long getProductId() 
    {
        return productId;
    }
    public void setProductName(String productName) 
    {
        this.productName = productName;
    }

    public String getProductName() 
    {
        return productName;
    }
    public void setProductPrice(BigDecimal productPrice) 
    {
        this.productPrice = productPrice;
    }

    public BigDecimal getProductPrice() 
    {
        return productPrice;
    }
    public void setPromotionalPrice(BigDecimal promotionalPrice) 
    {
        this.promotionalPrice = promotionalPrice;
    }

    public BigDecimal getPromotionalPrice() 
    {
        return promotionalPrice;
    }
    public void setProductDetail(String productDetail) 
    {
        this.productDetail = productDetail;
    }

    public String getProductDetail() 
    {
        return productDetail;
    }
    public void setImgUrl(String imgUrl) 
    {
        this.imgUrl = imgUrl;
    }

    public String getImgUrl() 
    {
        return imgUrl;
    }
    public void setStock(Long stock) 
    {
        this.stock = stock;
    }

    public Long getStock() 
    {
        return stock;
    }
    public void setTypeName(String typeName) 
    {
        this.typeName = typeName;
    }

    public String getTypeName() 
    {
        return typeName;
    }
    public void setTypeLevel(Long typeLevel) 
    {
        this.typeLevel = typeLevel;
    }

    public Long getTypeLevel() 
    {
        return typeLevel;
    }
    public void setPopularity(Long popularity) 
    {
        this.popularity = popularity;
    }

    public Long getPopularity() 
    {
        return popularity;
    }
    public void setSkuName(String skuName) 
    {
        this.skuName = skuName;
    }

    public String getSkuName() 
    {
        return skuName;
    }
    public void setSkuStock(Long skuStock) 
    {
        this.skuStock = skuStock;
    }

    public Long getSkuStock() 
    {
        return skuStock;
    }
    public void setSkuPrice(BigDecimal skuPrice) 
    {
        this.skuPrice = skuPrice;
    }

    public BigDecimal getSkuPrice() 
    {
        return skuPrice;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("productId", getProductId())
            .append("productName", getProductName())
            .append("productPrice", getProductPrice())
            .append("promotionalPrice", getPromotionalPrice())
            .append("productDetail", getProductDetail())
            .append("imgUrl", getImgUrl())
            .append("stock", getStock())
            .append("typeName", getTypeName())
            .append("typeLevel", getTypeLevel())
            .append("popularity", getPopularity())
            .append("skuName", getSkuName())
            .append("skuStock", getSkuStock())
            .append("skuPrice", getSkuPrice())
            .append("status", getStatus())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
